@烟雨
2年前 提问
1个回答
SparkSQL的特点有哪些
Simon
2年前
SparkSQL的特点有以下这些:
SparkSQL可以读取多种的结构化的数据源,如Json、Hive表、Parquet、ORC以及通过JDBC连接其他的关系数据库。
访问方式即可以通过应用程序中通过SQLContext、HiveContext来连接各种数据源或者已存的Hive表,也可以将RDD转换成Dataframe来进行DataFrame接口的访问,也可以通过DSL的方式访问;同样也可以启动一个Spark的JDBC服务器,提供JDBC的访问方式。
可以提供表的Cache机制,这样针对一个表的多次处理的时候,可以非常高效,节省了读取部分的时间,也是内存计算的亮点。
Streaming中也可以将其中的RDD转换成DataFrame,进行SQL处理,这里体现了一站式方案的优点。
Hive的Metastore支持多版本,从0.12.0到最新的1.2.1版本,通过设置spark.sql.hive.metastore.version来指定。
其中SparkSQL的API使用方式支持Scala、Java、Python和R这四种不同的方式,且在这个情况下,即使使用Python、R与Scala、Java此类JVM原生的方式,性能也会比较接近,因为都是DataFrame内部的catalyst统一优化。
同时在最新版本1.5.x中的钨丝计划(ProjectTungsten)大幅提升了SparkSQL的性能,从最新版本的默认打开来看,这也意味着该功能的成熟,如之前版本的Codegen能够带来很大的性能提升,但是亦存在稳定性问题。而且SparkSQL也是Spark社区后续重点发展的一个方向。